package com.techshine.common.interceptor;

import java.io.PrintWriter;

import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.techshine.util.JwtUtil;
import com.techshine.util.ThreadLocalUtil;
import org.apache.log4j.Logger;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

import com.techshine.common.cache.FinishSpringContext;
import com.techshine.entity.Constant;
import com.techshine.util.StringUtil;

/**
 * 
 *
 * @Description 
 * @author (作者) liukd
 * @date (开发日期) 2016年10月27日 下午3:02:25 
 * @company (开发公司) 北京精仪达盛科技有限公司
 * @copyright (版权) 本文件归北京精仪达盛科技有限公司所有
 * @version (版本) V1.0
 * @since (该版本支持的JDK版本) ： 1.7
 * @modify (修改) 
 *                  
 *                  
 *                  
 * @Review (审核人)
 */
public class LoginHandlerInterceptor extends HandlerInterceptorAdapter {
    
	private Logger log = Logger.getLogger(this.getClass());
    
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
        throws Exception {
        String path = request.getServletPath();
        System.err.println("请求路径："+path);
//		if (request.getRequestURI().endsWith("/techshine_war/back/login.html")){
//			return true;
//		}
//		if (request.getRequestURI().endsWith("/techshine_war/main/login")){
//			return true;
//		}
//        //requestType值为null为同步请求，值为XMLHttpRequest则为ajax请求
//        String requestType = request.getHeader("X-Requested-With");
//		//1.取出客户端请求头中令牌
//		String token =request.getHeader("Authorization");
//		try{
//			//2.检验token是否正确
//			Long empId= JwtUtil.parseAdminToken(token);
//			//将id存入线程
//			ThreadLocalUtil.setCurrentId(empId);
//			//检验成功
//			return true;
//		}catch (Exception e){
//			//检验失败
//			e.printStackTrace();
//			//返回权限不足401
//			response.setStatus(401);
//		}
		return true;
    }
    boolean auth(String path) {
        String[] split = path.split("/");
        if(split.length==3) {
        	String cont=split[1];
        	String opt=split[2];
        	Integer integer = FinishSpringContext.authMap.get(cont);
        	if(integer!=null) {
        		if(opt.contains("query")) {//0差1加2改4删
        			return true;
        		}else if(opt.contains("insert")&&integer>=1){
        			return true;
        		}else if(opt.contains("update")&&integer>=2){
        			return true;
        		}else if(opt.contains("delete")&&integer>=4){
        			return true;
        		}else {
        			return false;
        		}
        	}
        	
        }else {
        	 return false;
        }
        return false;
    }
    
}
